<?php
/**     
  *
  * Copyright (c) 2009, Persistent Systems Limited
  *
  * Redistribution and use, with or without modification, are permitted 
  *  provided that the following  conditions are met:
  *   - Redistributions of source code must retain the above copyright notice, 
  *     this list of conditions and the following disclaimer.
  *   - Neither the name of Persistent Systems Limited nor the names of its contributors 
  *     may be used to endorse or promote products derived from this software 
  *     without specific prior written permission.
  *
  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 
  * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, 
  * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 
  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR 
  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 
  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 
  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; 
  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, 
  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR 
  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, 
  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  *
  * It returns the listing of Sales Order. It expects HTTP GET method.
  *
  * Filter parameters are salespersonid, salesorderid, productid and regionid.
  */

  /**
   *
  */

	include("config/config.php");
	include("classes/connectionClass.php");
	include("includes/commonfunctions.php");
	include("Util/ValidateClaimUtil.php");

	$requiredClaims = array('ViewOrder'=>true);
	if(!ValidateClaimUtil::ValidateClaims($requiredClaims,ACS_TRUSTED_SERVICE,ACS_TRUSTED_AUDIENCE,ACS_TRUSTED_SIGNING_KEY)){


          setHeader('401','text/html'); 
		  exit;

	}

	$methodAndArgs = array();
	$methodAndArgs = getMethodAndArguments($_SERVER, $_GET, $_POST); 
	  
	if($methodAndArgs['method']!= 'GET') {
		setHeader('405','text/html'); 
		exit;
	}

	$salesOrder  = array();
	$metaData = array();
	$metaData['title'] = 'Sales Order'; // Setting meta data for Atom feed

	try {

		$salesPersonId = $methodAndArgs['arguments']['salespersonid'];
		$salesOrderId = $methodAndArgs['arguments']['salesorderid'];
		$productId = $methodAndArgs['arguments']['productid'];
		$regionId = $methodAndArgs['arguments']['regionid'];


		$dB = new Database_Conn();
		

		$query = "select s.salesorderid,s.productid,p.name as productname,rg.name as regionname,p.cost, s.orderqty,s.OrderDate from salesorder s,product p, salesperson sp, region rg where s.productid = p.productid and s.salespersonid = sp.salespersonid and sp.regionid =  rg.regionid";

		if(isset($salesPersonId)){

			$whereCond.= " and sp.salespersonid = $salesPersonId";
		}

		if(isset($salesOrderId)){

			$whereCond.= " and s.salesorderid=$salesOrderId";
		}

		if(isset($productId)){

			$whereCond.= " and s.productid=$productId";
		}

		if(isset($regionId)){

			$whereCond.= " and sp.regionId=$regionId";
		}

		$query = $query.$whereCond;
		$dB->prepareSql($query);
		$salesOrder = $dB->getResults();

		setHeader('200','text/xml'); 

	}catch (Exception $e) {

		setHeader('400','text/html'); 
		exit;
            
    }//EO catch

	echo $xmlstr = toAtom($salesOrder,$metaData); // return the Atom feed 


?>